Vue3 的 defineComponent 是什么?
defineComponent 函数是什么?
defineComponent 函数,只是对 setup 函数进行封装,返回 options 的对象;
export function defineComponent(options: unknown) {
return isFunction(options) ? { setup: options } : options
}
defineComponent 最重要的是:在 TypeScript 下,给予了组件 正确的参数类型推断 。
不用 defineComponent 的情况
在写 Vue 时可以发现,不用 defineComponent 也可以使用,如下:
但是把鼠标移动到 setup 函数的参数时,会发现它抛出了错误(可以不理),找不到类型
使用 defineComponent 后
当使用这个 defineComponent 后它就可以正确的类型推断了
import * as Vue from 'vue'
export default Vue.defineComponent(
{
setup(props) {
// do something
}
}
)
TODO: 待更新...